package com.ruoyi.merchant.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商家打印机信息对象 merchant_printers
 * 
 * @author ruoyi
 * @date 2025-10-23
 */
public class MerchantPrinters extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 打印机ID */
    @Excel(name = "打印机ID")
    private String printerId;

    /** 商家ID */
    @Excel(name = "商家ID")
    private String merchantId;

    /** 名称 */
    @Excel(name = "名称")
    private String printerName;

    /** 品牌 */
    @Excel(name = "品牌")
    private String printerBrand;

    /** 型号 */
    @Excel(name = "型号")
    private String printerModel;

    /** 序列号/设备号 */
    @Excel(name = "序列号/设备号")
    private String printerSn;

    /** 密钥 */
    @Excel(name = "密钥")
    private String printerKey;

    /** 连接方式 */
    @Excel(name = "连接方式")
    private Long connectionType;

    /** IP地址 */
    @Excel(name = "IP地址")
    private String ipAddress;

    /** 端口号 */
    @Excel(name = "端口号")
    private String port;

    /** 打印纸宽度 */
    @Excel(name = "打印纸宽度")
    private Long printWidth;

    /** 自动打印新订单 */
    @Excel(name = "自动打印新订单")
    private Long autoPrintOrder;

    /** 打印份数 */
    @Excel(name = "打印份数")
    private Long printCopies;

    /** 打印类型配置 */
    @Excel(name = "打印类型配置")
    private String printTypes;

    /** 是否默认打印机 */
    @Excel(name = "是否默认打印机")
    private Long isDefault;

    /** 是否在线 */
    @Excel(name = "是否在线")
    private Long isOnline;

    /** 最后心跳时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后心跳时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastHeartbeat;

    /** 状态 */
    @Excel(name = "状态")
    private Long status;

    /** 最近错误信息 */
    @Excel(name = "最近错误信息")
    private String errorMessage;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /** 删除时间（软删除） */
    @Excel(name = "删除时间", readConverterExp = "软=删除")
    private Date deletedAt;

    public void setPrinterId(String printerId) 
    {
        this.printerId = printerId;
    }

    public String getPrinterId() 
    {
        return printerId;
    }

    public void setMerchantId(String merchantId) 
    {
        this.merchantId = merchantId;
    }

    public String getMerchantId() 
    {
        return merchantId;
    }

    public void setPrinterName(String printerName) 
    {
        this.printerName = printerName;
    }

    public String getPrinterName() 
    {
        return printerName;
    }

    public void setPrinterBrand(String printerBrand) 
    {
        this.printerBrand = printerBrand;
    }

    public String getPrinterBrand() 
    {
        return printerBrand;
    }

    public void setPrinterModel(String printerModel) 
    {
        this.printerModel = printerModel;
    }

    public String getPrinterModel() 
    {
        return printerModel;
    }

    public void setPrinterSn(String printerSn) 
    {
        this.printerSn = printerSn;
    }

    public String getPrinterSn() 
    {
        return printerSn;
    }

    public void setPrinterKey(String printerKey) 
    {
        this.printerKey = printerKey;
    }

    public String getPrinterKey() 
    {
        return printerKey;
    }

    public void setConnectionType(Long connectionType) 
    {
        this.connectionType = connectionType;
    }

    public Long getConnectionType() 
    {
        return connectionType;
    }

    public void setIpAddress(String ipAddress) 
    {
        this.ipAddress = ipAddress;
    }

    public String getIpAddress() 
    {
        return ipAddress;
    }

    public void setPort(String port) 
    {
        this.port = port;
    }

    public String getPort() 
    {
        return port;
    }

    public void setPrintWidth(Long printWidth) 
    {
        this.printWidth = printWidth;
    }

    public Long getPrintWidth() 
    {
        return printWidth;
    }

    public void setAutoPrintOrder(Long autoPrintOrder) 
    {
        this.autoPrintOrder = autoPrintOrder;
    }

    public Long getAutoPrintOrder() 
    {
        return autoPrintOrder;
    }

    public void setPrintCopies(Long printCopies) 
    {
        this.printCopies = printCopies;
    }

    public Long getPrintCopies() 
    {
        return printCopies;
    }

    public void setPrintTypes(String printTypes) 
    {
        this.printTypes = printTypes;
    }

    public String getPrintTypes() 
    {
        return printTypes;
    }

    public void setIsDefault(Long isDefault) 
    {
        this.isDefault = isDefault;
    }

    public Long getIsDefault() 
    {
        return isDefault;
    }

    public void setIsOnline(Long isOnline) 
    {
        this.isOnline = isOnline;
    }

    public Long getIsOnline() 
    {
        return isOnline;
    }

    public void setLastHeartbeat(Date lastHeartbeat) 
    {
        this.lastHeartbeat = lastHeartbeat;
    }

    public Date getLastHeartbeat() 
    {
        return lastHeartbeat;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setErrorMessage(String errorMessage) 
    {
        this.errorMessage = errorMessage;
    }

    public String getErrorMessage() 
    {
        return errorMessage;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    public void setDeletedAt(Date deletedAt) 
    {
        this.deletedAt = deletedAt;
    }

    public Date getDeletedAt() 
    {
        return deletedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("printerId", getPrinterId())
            .append("merchantId", getMerchantId())
            .append("printerName", getPrinterName())
            .append("printerBrand", getPrinterBrand())
            .append("printerModel", getPrinterModel())
            .append("printerSn", getPrinterSn())
            .append("printerKey", getPrinterKey())
            .append("connectionType", getConnectionType())
            .append("ipAddress", getIpAddress())
            .append("port", getPort())
            .append("printWidth", getPrintWidth())
            .append("autoPrintOrder", getAutoPrintOrder())
            .append("printCopies", getPrintCopies())
            .append("printTypes", getPrintTypes())
            .append("isDefault", getIsDefault())
            .append("isOnline", getIsOnline())
            .append("lastHeartbeat", getLastHeartbeat())
            .append("status", getStatus())
            .append("errorMessage", getErrorMessage())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("deletedAt", getDeletedAt())
            .toString();
    }
}
